home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # mail-news release 2.0 Copyright Jem Taylor 1988
- #
- # Remove To: Cc: Received: and Via: fields,
- # ensure that there is a Subject: line or make Subject: (none),
- # re-order header lines to give
- # From:
- # Subject:
- # Message-ID:
- # Date:
- # Sender:
- # and move any other header lines to after these
- #
-
- /bin/awk '
- BEGIN { true=1; false=0; head=true; subject="Subject: (none)"
- gateway="X-Mailer: mail-news 2.0.3"
- }
- # From: and Sender: lines must be login@host (real name)
- # instead of real name <login@host>
- # assume that <username> is one word - no quoted space - and at end of line
- /^From:.*>$/ { if (head==true)
- { user=substr ( $NF, 2, length($NF) -2 )
- real = $2
- for ( i=3; i<NF; i++ ) real = real " " $i
- from = "From: " user " (" real ")"
- next
- }
- }
- /^Sender:.*>$/ { if (head==true)
- { user=substr ( $NF, 2, length($NF) -2 )
- real = $2
- for ( i=3; i<NF; i++ ) real = real " " $i
- sender = "Sender: " user " (" real ")"
- next
- }
- }
- /^From:/ { if (head==true) { from = $0 ; next } }
- /^Sender:/ { if (head==true) { sender = $0 ; next } }
- /^Message-ID:/ { if (head==true) { messageid = $0 ; next } }
- /^Date:/ { if (head==true) { date = $0 ; next } }
-
- ##insist Subject: has something in it!
- /^Subject:.*[-=:)a-zA-Z@#!]/ {
- if (head==true) { subject=$0; next } }
-
- ## discard these and header continuation lines
- /^Received:/||/^Via:/|| \
- /^To:/||/^Cc:/||\
- /^ /||/^ / { if (head==true) next }
-
- ## move any other header lines to end of header
- /^.*:/ { if (head==true) { others[++ocnt]=$0; next } }
-
- ## break between head and body - ensure subject in head
- /^$/ { if (head==true)
- { head=false;
- if (from!="") print from
- print subject
- if (messageid!="") print messageid
- if (date!="") print date
- if (sender!="") print sender
- for (i=1;i<=ocnt;i++) print others[i]
- print gateway
- print ""
- next
- }
- }
-
- ## change inclusion mark since sender is not on hand ...
- /^>/ { if (head==false)
- { print "|" substr( $0, 2, length - 1 )
- next
- }
- }
-
- ## all lines including body - unless explicitly skipped above
- { print $0 }
- ' | /usr/lib/news/inews $@
-